package com.ytjj.qmyx.admin.mapper;

import com.ytjj.qmyx.admin.model.ImUserBindInfo;
import com.ytjj.qmyx.admin.model.ImUserBindInfoExample;
import java.util.List;

import com.ytjj.qmyx.admin.model.dto.ImUserBindInfoDto;
import com.ytjj.qmyx.admin.model.vo.ImUserBindInfoVO;
import org.apache.ibatis.annotations.Param;

public interface ImUserBindInfoMapper {
    long countByExample(ImUserBindInfoExample example);

    int deleteByExample(ImUserBindInfoExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(ImUserBindInfo record);

    int insertSelectiveVO(ImUserBindInfo record);

    int insertSelective(ImUserBindInfoVO record);

    List<ImUserBindInfo> selectByExample(ImUserBindInfoExample example);

    ImUserBindInfo selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") ImUserBindInfo record, @Param("example") ImUserBindInfoExample example);

    int updateByExample(@Param("record") ImUserBindInfo record, @Param("example") ImUserBindInfoExample example);

    int updateByPrimaryKeySelective(ImUserBindInfo record);

    int updateByPrimaryKey(@Param("record") ImUserBindInfo record);

    int updateOne(@Param("record") ImUserBindInfoVO record);

    Integer deleteCustomerMessage(@Param("id") Integer id);

    int updateSolveStatusBySessionId(@Param("sessionId") Integer sessionId);

    ImUserBindInfoDto selectOneByCustomerId(@Param("customerId") String customerId);

    ImUserBindInfoDto selectOne(@Param("sessionId") Integer sessionId);

    ImUserBindInfoDto selectBySessionId(@Param("customerId") String customerId);

    ImUserBindInfoDto selectOneBySessionId(@Param("customerId") String customerId);

    void updateSolveStatusBySessionIds(@Param("sessionIds") List<Integer> sessionIds);
}